﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using Entity = VietStar.Library.Entity;
using Business = VietStar.Library.Business;
using Commom = VietStar.Library.Commom;

public partial class controls_admin_addimages : System.Web.UI.UserControl
{
    Entity.HinhAnh clsE_HinhAnh = new VietStar.Library.Entity.HinhAnh();
    Entity.ChuDe clsE_ChuDe = new VietStar.Library.Entity.ChuDe();
    Business.HinhAnh clsB_HinhAnh = new VietStar.Library.Business.HinhAnh();
    Business.ChuDe clsB_ChuDe = new VietStar.Library.Business.ChuDe();
    Commom.Algorithm.RandomString sinhchuoi = new VietStar.Library.Commom.Algorithm.RandomString();
    string chuoi = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    int tam;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Alert.Load_DropDownList(ddlThuVien, clsB_ChuDe.SelectChuDeHinhAnh(), "TenChuDe", "IdChuDe", "------Chọn chủ đề------");
            string action = Request.QueryString["action"].ToString();
            if (action == "add")
            {
                lbTitle.Text = "Thêm mới hình ảnh";
                setVisible(true);
            }
            if (action == "edit")
            {
                setVisible(false);
                lbTitle.Text = "Sửa nội dung hình ảnh";
                int info = Convert.ToInt32(Request.QueryString["info"].ToString());
                clsE_HinhAnh.IdHinh = info;
                DataTable dtHinhAnh = clsB_HinhAnh.SelectPrimarykey(clsE_HinhAnh);
                txtMoTa.Text = dtHinhAnh.Rows[0]["GioiThieu"].ToString();
                ddlThuVien.SelectedValue = dtHinhAnh.Rows[0]["IdChuDe"].ToString();
                clsE_ChuDe.IdChuDe = Convert.ToInt32(ddlThuVien.SelectedValue);
                DataTable dtChuDe=clsB_ChuDe.SelectPrimarykey(clsE_ChuDe);
                txtTenChuDe.Text = dtChuDe.Rows[0]["TenChuDe"].ToString();
                lbTenFile.Text = dtHinhAnh.Rows[0]["TenFile"].ToString();
                ImbHinhAnh.ImageUrl = "~/images/galleryactions/" + dtHinhAnh.Rows[0]["TenFile"].ToString();
            }
        }
    }
    private void setVisible(bool set)
    {
        ImbHinhAnh.Visible = !set;
        upload.Visible = set;
    }
    private bool check()
    {
        bool kiemtra = true;
        if (fuHinhAnh.FileName == "")
        { Alert.Show("Bạn chưa chọn hình ảnh để đăng"); kiemtra = false; }
        else if (btnLuuChuDe.Visible == true)
        { Alert.Show("Bạn hãy lưu và chọn chủ đề cho hình ảnh trước"); kiemtra = false; }
        else if (ddlThuVien.SelectedValue == "0")
        { Alert.Show("Bạn chưa chọn chủ đề cho hình ảnh"); kiemtra = false; }
        else if (txtMoTa.Text == "")
        { Alert.Show("Bạn chưa giới thiệu về hình ảnh"); kiemtra = false; }
        return kiemtra;
    }
    protected void btnLuu_Click(object sender, EventArgs e)
    {
        bool save = false;
        string str = Server.MapPath("~/images/galleryactions/");
        string tenhinh = "";
        string action = Request.QueryString["action"].ToString();
        clsE_HinhAnh.IdHinh = Convert.ToInt32(Request.QueryString["info"].ToString());
        if (fuHinhAnh.FileName != "")
        {
            tenhinh=clsE_HinhAnh.TenFile = sinhchuoi.GenerateRandomString(4, chuoi) + fuHinhAnh.FileName;
        }
        else
            clsE_HinhAnh.TenFile = lbTenFile.Text;
        clsE_HinhAnh.IdChuDe = Convert.ToInt32(ddlThuVien.SelectedValue);
        clsE_HinhAnh.NguoiDang = Session["user_login_admin"].ToString();

        clsE_HinhAnh.GioiThieu = txtMoTa.Text;
        clsE_HinhAnh.TrangThai = false;
        clsE_HinhAnh.NgayDang = DateTime.Now;
        if (action == "add")
        {
            if (check())
            {
                fuHinhAnh.SaveAs(str + tenhinh);
                save = clsB_HinhAnh.Insert(clsE_HinhAnh);
                if (save)
                { Alert.Show("Thêm mới hình ảnh thành công !!!"); }
                else
                { Alert.Show("Thêm mới hình ảnh không thành công !!!"); }
            }
        }
        if (action == "edit")
        {
            if (fuHinhAnh.FileName != "")
            {
                File.Delete(Server.MapPath("~/images/galleryactions/" + lbTenFile.Text));
                fuHinhAnh.SaveAs(str + tenhinh);
            }
            save = clsB_HinhAnh.Update(clsE_HinhAnh);
            if (save)
            { Alert.Show("Sửa thông tin hình ảnh thành công !!!"); }
            else
            { Alert.Show("Sửa thông tin hình ảnh không thành công !!!"); }

        }
    }
    protected void btnQuayLai_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/admin/listimages.aspx");
    }
    protected void btnThemChuDe_Click(object sender, EventArgs e)
    {
        setThemChuDe(true);
        txtTenChuDe.Text = "";
        lbllogic.Visible = false;
    }
    private void setThemChuDe(bool set)
    {
        ddlThuVien.Visible = !set;
        btnThemChuDe.Visible = !set;
        btnXoaChuDe.Visible = !set;
        btnSuaChuDe.Visible = !set;
        txtTenChuDe.Visible = set;
        btnLuuChuDe.Visible = set;
        btnTroVe.Visible = set;
    }
    protected void ImbHinhAnh_Click(object sender, ImageClickEventArgs e)
    {
        setVisible(true);
    }
    protected void btnLuuChuDe_Click(object sender, EventArgs e)
    {
        bool save = false;
        if (lbllogic.Visible == false)
        {
            if (txtTenChuDe.Text == "")
            {
                Alert.Show("Bạn chưa nhập tên chủ đề!");
            }
            else
            {
                clsE_ChuDe.TenChuDe = txtTenChuDe.Text;
                clsE_ChuDe.NguoiTao = Session["user_login_admin"].ToString();
                clsE_ChuDe.ChuDeHinhAnh = true;
                clsE_ChuDe.ChuDeVideo = false;
                save = clsB_ChuDe.Insert(clsE_ChuDe);
                if (save)
                {
                    Alert.Show("Thêm chủ đề thành công!");
                    Alert.Load_DropDownList(ddlThuVien, clsB_ChuDe.SelectChuDeHinhAnh(), "TenChuDe", "IdChuDe", "------Chọn chủ đề------");
                    setThemChuDe(false);
                }
                else
                {
                    Alert.Show("Thêm chủ đề không thành công!");
                    setThemChuDe(false);

                }
            }
        }
        else
        {
            clsE_ChuDe.IdChuDe = Convert.ToInt32(ddlThuVien.SelectedValue);
            clsE_ChuDe.TenChuDe = txtTenChuDe.Text;
            clsE_ChuDe.ChuDeHinhAnh = true;
            clsE_ChuDe.ChuDeVideo = false;
            save = clsB_ChuDe.Update(clsE_ChuDe);
            if (save)
            {
                Alert.Show("Cập nhật chủ đề thành công!");
                Alert.Load_DropDownList(ddlThuVien, clsB_ChuDe.SelectChuDeHinhAnh(), "TenChuDe", "IdChuDe", "------Chọn chủ đề------");
                setThemChuDe(false);
            }
            else
            {
                Alert.Show("Cập nhật chủ đề không thành công!");
                setThemChuDe(false);

            }
        }
    }
    protected void btnTroVe_Click(object sender, EventArgs e)
    {
        setThemChuDe(false);
    }
    protected void btnXoaChuDe_Click(object sender, EventArgs e)
    {
        bool delete = false,delete1=false;        
        if (ddlThuVien.SelectedValue != "0")
        {
            clsE_ChuDe.IdChuDe = Convert.ToInt32(ddlThuVien.SelectedValue);
            clsE_HinhAnh.IdChuDe = Convert.ToInt32(ddlThuVien.SelectedValue);
            DataTable dt=clsB_HinhAnh.SelectTheoChuDe(clsE_HinhAnh);
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                File.Delete(Server.MapPath("~/images/galleryactions/" + dt.Rows[i]["TenFile"].ToString()));
            }
            dt = null;
            delete1 = clsB_HinhAnh.Delete_TheoChuDe(clsE_HinhAnh);
            delete = clsB_ChuDe.Delete(clsE_ChuDe);
            if (delete==true && delete1==true)
            {
                Alert.Show("Xóa chủ đề thành công!");
                ddlThuVien.Items.Clear();
                Alert.Load_DropDownList(ddlThuVien, clsB_ChuDe.SelectChuDeHinhAnh(), "TenChuDe", "IdChuDe", "------Chọn chủ đề------");
                txtMoTa.Text = "";
            }
            else
            {
                Alert.Show("Xóa chủ đề thành công!");
            }
        }
        else
        { Alert.Show("Bạn chưa chọn chủ đề cần xóa!"); }
    }
    protected void btnSuaChuDe_Click(object sender, EventArgs e)
    {
        if (ddlThuVien.SelectedValue != "0")
        {
            setThemChuDe(true);
            lbllogic.Visible = true;
        }
        else
        {
            Alert.Show("Bạn chưa chọn chủ đề cần sửa!");
        }
    }
    protected void ddlThuVien_SelectedIndexChanged(object sender, EventArgs e)
    {        
        clsE_ChuDe.IdChuDe=Convert.ToInt32( ddlThuVien.SelectedValue);
        DataTable dt = clsB_ChuDe.SelectPrimarykey(clsE_ChuDe);
        txtTenChuDe.Text = dt.Rows[0]["TenChuDe"].ToString();
    }
}
